﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using AutoBackupDatabase.ENT;
using AutoBackupDatabase.BLL;
using AutoBackupDatabase.General;

namespace AutoBackupDatabase
{
    public partial class Area_ucc : DevExpress.XtraEditors.XtraUserControl
    {
        private AREABLL areaBLL;
        private List<AREAENT> ListArea = null;
        public Area_ucc()
        {
            InitializeComponent();
            areaBLL = new AREABLL();
            ListArea = new List<AREAENT>();
         
        }
        DETAILGROUPUSERROLEBLL checkRole = new DETAILGROUPUSERROLEBLL();

        private void LoadDataArea()
        {
            try
            {
                

                
              

                ListArea = areaBLL.GetAllareaData();
                dtgArea.DataSource = ListArea;
                if (gridView1.RowCount>0)
                {
                    
                        AREAENT Area = (AREAENT)gridView1.GetFocusedRow();
                        txtAreaID.Text = Area.AREAID;
                        txtAreaName.Text = Area.AREANAME;
                    
                }
            }
            catch (Exception)
            {

                return;
            }
           
        }
        private void RefreshDataArea()
        {
            try
            {
                gridView1.RefreshData();
                
            }
            catch (Exception)
            {

                return;
            }
        }
            
       
        private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {

                if (!checkRole.CHECKROLE(general.groupUserCode, Role.area_add))
                {
                    MessageBox.Show("Bạn chưa chưa được cấp quyền sử dụng cho tính năng này");
                    return;
                }
                if (btnAdd.Text == "THÊM MỚI")
                {
                    general.ChangeButtonStatus("insert", btnAdd, btnUpdate, btnDelete);
                    txtAreaID.Text = "";
                    txtAreaName.Text = "";
                    txtAreaID.Enabled = true;
                    txtAreaName.Enabled = true;
                    return;

                }
                 if (btnAdd.Text == "LƯU")
                {

                    if (!Validator.IsNull(Validator.TrimAll( txtAreaID.Text)))
                    {
                        MessageBox.Show("Mã khu vực không thể bỏ trống");
                        return;
                    }

                    if (!Validator.IsNull(txtAreaName.Text))
                    {
                        MessageBox.Show("Tên khu vực không thể bỏ trống");
                        return;
                    }

                   // if (ListArea.Exists(p => p.AREAID.Equals("") && p.AREANAME.Equals("")))
                    if (ListArea.Exists(p => p.AREAID.Equals(Validator.TrimAll( txtAreaID.Text))))
                    {
                        MessageBox.Show("Mã khu vực này [" + txtAreaID.Text + "] đã tồn tại hãy chọn tên khác", "Thông báo");
                        return;
                    }
                    else if (ListArea.Exists(p => p.AREANAME.Equals(txtAreaName.Text.TrimStart().TrimEnd())))
                    {
                        MessageBox.Show("Tên khu vực này [" + txtAreaName.Text + "] đã tồn tại hãy chon tê khác", "Thông báo");
                        return;
                    }
                   
                    else
                    {
                        if (areaBLL.INSERTAREA(InputData()))
                        {
                            ListArea.Add(InputData());
                            MessageBox.Show("Thêm mới thành công", "Thông báo");
                            txtAreaID.Enabled = false;
                            txtAreaName.Enabled = false;
                            RefreshDataArea();
                            general.ChangeButtonStatus("insert", btnAdd, btnUpdate, btnDelete);
                        }

                    }
                       

                }
                else
                    MessageBox.Show("Thêm mới thất bại vui lòng kiểm tra lại dữ liệu ", "Thông báo");
            }
            catch (Exception)
            {

                return;
            }
            


        }

        private AREAENT InputData()
        {
            AREAENT areaENT = new AREAENT();
            areaENT.AREAID =Validator.TrimAll( txtAreaID.Text);
            areaENT.AREANAME = txtAreaName.Text.TrimStart().TrimEnd();
            return areaENT;
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            try
            {
                if (!checkRole.CHECKROLE(general.groupUserCode, Role.area_edit))
                {
                    MessageBox.Show("Bạn chưa chưa được cấp quyền sử dụng cho tính năng này");
                    return;
                }
                if (btnUpdate.Text == "CẬP NHẬT")
                {
                    general.ChangeButtonStatus("update", btnAdd, btnUpdate, btnDelete);
                    txtAreaID.Enabled = false;
                    txtAreaName.Enabled = true;

                    return;

                }
                else
                    if (btnUpdate.Text == "HỦY")
                    {
                        general.ChangeButtonStatus("insert", btnAdd, btnUpdate, btnDelete);
                        txtAreaID.Enabled = false;
                        txtAreaName.Enabled = false;
                   
                    }
                    else if (btnUpdate.Text == "LƯU")
                    {
                        
                        if (!Validator.IsNull( txtAreaName.Text))
                        {
                            MessageBox.Show("Tên khu vực không thể bỏ trống");
                            return;
                        }

                        if (areaBLL.UPDATEAREABYAREAID(InputData()))
                        {
                            MessageBox.Show("Cập nhật thành công", "Thông báo");
                            LoadDataArea();
                            general.ChangeButtonStatus("update", btnAdd, btnUpdate, btnDelete);
                            txtAreaID.Enabled = false;
                            txtAreaName.Enabled = false;
                        }
                    }
                    else
                        MessageBox.Show("Cập nhật thất bại vui lòng kiểm tra lại dữ liệu ","Thông báo");
            }
            catch (Exception)
            {
                
               return;
            }

           
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            try
            {
                if (!checkRole.CHECKROLE(general.groupUserCode, Role.area_delete))
                {
                    MessageBox.Show("Bạn chưa chưa được cấp quyền sử dụng cho tính năng này");
                   return;

                }

                if (btnDelete.Text == "HỦY")
                {
                    general.ChangeButtonStatus("update", btnAdd, btnUpdate, btnDelete);
                    txtAreaID.Enabled = false;
                    txtAreaName.Enabled = false;
                }
                else if (btnDelete.Text == "XÓA")
                {
                    if (MessageBox.Show(MessageShow.delConfirmInfo, MessageShow.delConfirmCaption, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                    {
                        areaBLL.DELTELEAREABYAREAID(InputData());
                        LoadDataArea();
                        general.ChangeButtonStatus("delete", btnAdd, btnUpdate, btnDelete);
                    }
                }
                else
                    return;
            }
            catch (Exception)
            {

                return;
            }
            


        }

        private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
            try
            {
                if (e.RowHandle >= 0)
                {
                    AREAENT Area = (AREAENT)gridView1.GetFocusedRow();
                    txtAreaID.Text = Area.AREAID;
                    txtAreaName.Text = Area.AREANAME;
                }
            }
            catch (Exception)
            {

                return;
            }
            
        }

        private void Area_ucc_Load(object sender, EventArgs e)
        {
            LoadDataArea();
        }

        

    }
}
